Times John Neil & Associates P.O. Box 2156 Cupertino, CA 95015 USA Orders: E-Mail: Web Site: (800) 663-2943 (415) 661-2944 sales@jna.com http://www.jna.com of 2 lUUUU HUUUU I$UUUU ------ <<<<<< KKKKKK ZZZZZZ iiiiii xxxxxx Programmer Information John Neil April 23, 1996 What SoftwareFPU Does YSoftwareFPU is a control panel which emulates a Motorola 68881 Floating Point Unit (FPU). H\It is intended to be used in any 68020, 68030, or 68LC040 Macintosh computer without an FPU. ^It can also be used on Power Macintosh machines, since the Apple 68K emulator does not emulate _FPU instructions. It works by patching out the F-Line exception vector of the machine with one 1that points to FPU emulation code in SoftwareFPU. /Differences Between a 68881 FPU and SoftwareFPU RThe differences between the hardware FPU and SoftwareFPU are minimal. The current H7differences between SoftwareFPU and a hardware FPU are: /FRESTORE does not support the busy state frame. GMid-instruction exceptions are reported as post-instruction exceptions. ZIf an exception occurs in trace mode, two instructions will execute before control returns to the debugger. TCode which puts data below the stack pointer and then issues an FPU instruction will Xnot work. This is of course a no-no since data below the stack pointer can be clobbered by interrupt routines as well. OSome emulated FPU instructions may produce slightly different results than on a hardware FPU. ZYIn addition, on PowerPC machines in 64-bit accuracy mode the following differences exist: UThe rounding precision in the FPU Mode Control Byte is ignored. All calculations are Pperformed as if double-precision rounding was selected in the Mode Control Byte. SFor performance reasons, the PowerPC emulator cannot emulate address and bus errors Xproperly. If an FPU instruction causes an address or bus error, the emulator will break Pinto MacsBug at a location inside the emulator, rather than at the offending FPU instruction. Z+' / .#+ Dt p temp.0001 John M. Neil John M. Neil Microsoft Word Times Courier rPREC ~PRVS